package org.leo.flow.flow;

import java.util.Map;

import org.leo.flow.bean.InData;
import org.leo.flow.bean.OutData;
import org.leo.flow.exception.TransferException;
import org.leo.flow.step.IStep;

/**
 * Created on 2017年2月4日
 * <p>
 * Description 流程接口类
 * <p>
 * Copyright xxx (c) 2019 .
 * 
 * @author leo
 */
public interface IFlow {
	
	/**
	 * 
	 * Created on 2017年3月27日 .
	 * <p>
	 * Description 执行插件集合
	 *
	 * @author leo void
	 */
	void runPlugin();

	/**
	 * Created on 2017年2月4日 .
	 * <p>
	 * Description 运行方法
	 * 
	 * @author leo
	 * @param step
	 * @param data
	 * @return void
	 * @throws BussinessException 
	 * @throws TransferException 
	 * @throws Exception 
	 */
	void run(IStep step, InData<String, Object> data) throws Exception;

	/**
	 * Created on 2017年2月4日 .
	 * <p>
	 * Description 获取结果方法
	 * 
	 * @author leo
	 * @return SOut
	 */
	OutData<String, Object> getResult();

	Map<String, Object> getParam();

	void setParam(Map<String, Object> param);
}
